home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 07 - 1991 / 07.04 Apr 91 / Code Optimizing / Sources / Mxmpy.f.FPU.opt2.a < prev    next >
Encoding:
Text File  |  1990-04-14  |  4.5 KB  |  204 lines  |  [TEXT/MPS ]

  1. ;    Assembler source from Language Systems FORTRAN (Version 2.0 January 23, 1990)
  2. ;    Sat, Apr 14, 1990   16:43
  3. ;    Optimization Level 2.
  4.  
  5.         BLANKS ON
  6.         STRING ASIS
  7.         PRINT OFF
  8.         INCLUDE 'Traps.a'
  9.         INCLUDE 'ToolEqu.a'
  10.         INCLUDE 'QuickEqu.a'
  11.         INCLUDE 'SysEqu.a'
  12.         INCLUDE 'SANEMacs.a'
  13.         PRINT ON
  14.  
  15.         MACHINE MC68030
  16.         MC68881
  17.  ;  File "mxmpy.f";  Line          1
  18.         SEG    'mxmpy'
  19. MXMPY    PROC EXPORT
  20.         LINK    A6,#$FFFFFF2C
  21.         MOVEM.L    D5-D7,-(SP)
  22.         FMOVE    FP7,-(SP)
  23.  ;  File "mxmpy.f";  Line         17
  24.         BRA        L10002
  25. L10001    EQU    *
  26.         MOVE.L    #$00000001,$FFFFFFAC(A6)
  27.         MOVEA.L    $0010(A6),A0
  28.         MOVE.L    (A0),$FFFFFFB0(A6)
  29.         MOVE.L    (A0),D0
  30.         ASL.L    #2,D0
  31.         MOVE.L    D0,D1
  32.         ADD.L    D0,D0
  33.         ADD.L    D1,D0
  34.         MOVE.L    D0,$FFFFFF64(A6)
  35.         MOVE.L    $FFFFFF64(A6),$FFFFFFB4(A6)
  36.         MOVE.L    #$00000001,$FFFFFFB8(A6)
  37.         MOVEA.L    $000C(A6),A0
  38.         MOVE.L    (A0),$FFFFFFBC(A6)
  39.         MOVE.L    $FFFFFFB4(A6),$FFFFFF4C(A6)
  40.         MOVEA.L    $000C(A6),A0
  41.         MOVE.L    $FFFFFF4C(A6),D1
  42.         MULS.L    $0000(A0),D1
  43.         MOVE.L    D1,$FFFFFF4C(A6)
  44.         MOVE.L    $FFFFFF4C(A6),$FFFFFFC0(A6)
  45.         MOVE.L    #$00000001,$FFFFFFC4(A6)
  46.         MOVEA.L    $000C(A6),A0
  47.         MOVE.L    (A0),$FFFFFFC8(A6)
  48.         MOVE.L    (A0),D0
  49.         ASL.L    #2,D0
  50.         MOVE.L    D0,D1
  51.         ADD.L    D0,D0
  52.         ADD.L    D1,D0
  53.         MOVE.L    D0,$FFFFFF54(A6)
  54.         MOVE.L    $FFFFFF54(A6),$FFFFFFCC(A6)
  55.         MOVE.L    #$00000001,$FFFFFFD0(A6)
  56.         MOVEA.L    $0008(A6),A0
  57.         MOVE.L    (A0),$FFFFFFD4(A6)
  58.         MOVE.L    $FFFFFFCC(A6),$FFFFFF54(A6)
  59.         MOVEA.L    $0008(A6),A0
  60.         MOVE.L    $FFFFFF54(A6),D1
  61.         MULS.L    $0000(A0),D1
  62.         MOVE.L    D1,$FFFFFF54(A6)
  63.         MOVE.L    $FFFFFF54(A6),$FFFFFFD8(A6)
  64.         MOVE.L    #$00000001,$FFFFFFDC(A6)
  65.         MOVEA.L    $0010(A6),A0
  66.         MOVE.L    (A0),$FFFFFFE0(A6)
  67.         MOVE.L    $FFFFFF64(A6),$FFFFFFE4(A6)
  68.         MOVE.L    #$00000001,$FFFFFFE8(A6)
  69.         MOVEA.L    $0008(A6),A0
  70.         MOVE.L    (A0),$FFFFFFEC(A6)
  71.         MOVE.L    $FFFFFFE4(A6),$FFFFFF5C(A6)
  72.         MOVEA.L    $0008(A6),A0
  73.         MOVE.L    $FFFFFF5C(A6),D1
  74.         MULS.L    $0000(A0),D1
  75.         MOVE.L    D1,$FFFFFF5C(A6)
  76.         MOVE.L    $FFFFFF5C(A6),$FFFFFFF0(A6)
  77.         RTS
  78. L10002    EQU    *
  79.         BSR        L10001
  80.  ;  File "mxmpy.f";  Line         18
  81.         MOVEQ    #$0001,D1
  82.         SUB.L    $FFFFFFC4(A6),D1
  83.         ASL.L    #2,D1
  84.         MOVE.L    D1,D0
  85.         ADD.L    D1,D1
  86.         ADD.L    D0,D1
  87.         MOVEQ    #$0001,D2
  88.         SUB.L    $FFFFFFD0(A6),D2
  89.         MULS.L    $FFFFFFCC(A6),D2
  90.         ADD.L    D1,D2
  91.         MOVE.L    D2,$FFFFFF84(A6)
  92.         MOVEQ    #$0001,D1
  93.         SUB.L    $FFFFFFAC(A6),D1
  94.         ASL.L    #2,D1
  95.         MOVE.L    D1,D0
  96.         ADD.L    D1,D1
  97.         ADD.L    D0,D1
  98.         MOVEQ    #$0001,D2
  99.         SUB.L    $FFFFFFB8(A6),D2
  100.         MULS.L    $FFFFFFB4(A6),D2
  101.         ADD.L    D1,D2
  102.         MOVE.L    D2,$FFFFFF80(A6)
  103.         MOVEQ    #$0001,D1
  104.         SUB.L    $FFFFFFDC(A6),D1
  105.         ASL.L    #2,D1
  106.         MOVE.L    D1,D0
  107.         ADD.L    D1,D1
  108.         ADD.L    D0,D1
  109.         MOVEQ    #$0001,D2
  110.         SUB.L    $FFFFFFE8(A6),D2
  111.         MULS.L    $FFFFFFE4(A6),D2
  112.         ADD.L    D1,D2
  113.         MOVE.L    D2,$FFFFFF7C(A6)
  114.         MOVE.L    #$00000001,$FFFFFFA0(A6)
  115.         MOVEA.L    $0010(A6),A1
  116.         MOVE.L    (A1),D5
  117.         BLE        L10004
  118. L10003    EQU    *
  119.  ;  File "mxmpy.f";  Line         19
  120.         MOVE.L    $FFFFFF7C(A6),$FFFFFF78(A6)
  121.         MOVE.L    $FFFFFF80(A6),$FFFFFF74(A6)
  122.         MOVE.L    $FFFFFF84(A6),$FFFFFF70(A6)
  123.         MOVE.L    #$00000001,$FFFFFFA4(A6)
  124.         MOVEA.L    $0008(A6),A1
  125.         MOVE.L    (A1),D6
  126.         BLE        L10006
  127. L10005    EQU    *
  128.  ;  File "mxmpy.f";  Line         20
  129.         LEA        $FFFFFFF4(A6),A1
  130.         CLR.L    (A1)+
  131.         CLR.L    (A1)+
  132.         CLR.L    (A1)+
  133.  ;  File "mxmpy.f";  Line         21
  134.         MOVE.L    $FFFFFF70(A6),$FFFFFF6C(A6)
  135.         MOVE.L    $FFFFFF74(A6),$FFFFFF68(A6)
  136.         MOVE.L    #$00000001,$FFFFFFA8(A6)
  137.         MOVEA.L    $000C(A6),A1
  138.         MOVE.L    (A1),D7
  139.         BLE        L10008
  140. L10007    EQU    *
  141.  ;  File "mxmpy.f";  Line         22
  142.         MOVE.L    $FFFFFF68(A6),$FFFFFF48(A6)
  143.         MOVE.L    $FFFFFF6C(A6),$FFFFFF4C(A6)
  144.         MOVEA.L    $001C(A6),A0
  145.         ADDA.L    $FFFFFF48(A6),A0
  146.         FMOVE.X    (A0),FP7
  147.         MOVEA.L    $0018(A6),A1
  148.         ADDA.L    $FFFFFF4C(A6),A1
  149.         FMUL.X    (A1),FP7
  150.         FADD.X    $FFFFFFF4(A6),FP7
  151.         FMOVE.X    FP7,$FFFFFFF4(A6)
  152.  ;  File "mxmpy.f";  Line         23
  153.         MOVE.L    $FFFFFFB4(A6),D1
  154.         ADD.L    D1,$FFFFFF68(A6)
  155.         MOVEQ    #$000C,D1
  156.         ADD.L    D1,$FFFFFF6C(A6)
  157.         ADDQ.L    #1,$FFFFFFA8(A6)
  158.         SUBQ.L    #1,D7
  159.         BGT.S    L10007
  160. L10008    EQU    *
  161.  ;  File "mxmpy.f";  Line         24
  162.         MOVE.L    $FFFFFF78(A6),$FFFFFF60(A6)
  163.         LEA        $FFFFFFF4(A6),A0
  164.         MOVEA.L    $0014(A6),A1
  165.         ADDA.L    $FFFFFF60(A6),A1
  166.         MOVE.L    (A0)+,(A1)+
  167.         MOVE.L    (A0)+,(A1)+
  168.         MOVE.L    (A0)+,(A1)+
  169.  ;  File "mxmpy.f";  Line         25
  170.         MOVE.L    $FFFFFFCC(A6),D1
  171.         ADD.L    D1,$FFFFFF70(A6)
  172.         MOVE.L    $FFFFFFE4(A6),D1
  173.         ADD.L    D1,$FFFFFF78(A6)
  174.         ADDQ.L    #1,$FFFFFFA4(A6)
  175.         SUBQ.L    #1,D6
  176.         BGT        L10005
  177. L10006    EQU    *
  178.  ;  File "mxmpy.f";  Line         26
  179.         MOVEQ    #$000C,D1
  180.         ADD.L    D1,$FFFFFF7C(A6)
  181.         MOVEQ    #$000C,D1
  182.         ADD.L    D1,$FFFFFF80(A6)
  183.         ADDQ.L    #1,$FFFFFFA0(A6)
  184.         SUBQ.L    #1,D5
  185.         BGT        L10003
  186. L10004    EQU    *
  187.  ;  File "mxmpy.f";  Line         27
  188.         FMOVE    (SP)+,FP7
  189.         MOVEM.L    (SP)+,D5-D7
  190.         UNLK    A6
  191.         RTD        #$0018
  192.  ;  File "mxmpy.f";  Line         27
  193. PROCSTR    EQU    *
  194.         DC.W    $FFFF8006
  195.         DC.B    'MXMPY '
  196.         DC.W    $0000
  197. EXTDCONST    EQU        *
  198.         DC.W    $0000,$0000,$0000,$0000,$0000,$0000
  199.  
  200.         ENDPROC
  201.  
  202.  
  203.         END
  204.